home *** CD-ROM | disk | FTP | other *** search
- Sample Delphi code that makes a Delphi app wait till ReportSmith's Runtime Viewer is ready for another command.
-
- procedure TForm1.Button1Click(Sender: TObject);
- var
- TheData: PChar;
- PSetup : PChar;
- s : string;
- begin
-
- { This block of code causes the Runtime to display its "Print Setup" dialog box. }
- s := 'ExecuteMenu "File|Print Setup"';
- PSetup := StrAlloc(Length(s));
- StrPCopy(PSetup, s);
- { DdeService is set to RS_Runtime, and }
- { DdeTopic is set to Command. }
- DdeClientConv1.ExecuteMacro(PSetup, false);
- StrDispose(PSetup);
-
- { This is the block of code that makes Delphi wait until the Runtime Viewer is ready for another command. }
- TheData :=nil; { Clear the variable. }
- s := ''; { Clear the variable. }
- while s <> 'Ready' do { Loop until s = 'Ready' }
- begin
- { DdeService is set to RS_Runtime, and }
- { DdeTopic is set to System. }
- { 'Status' is a ReportSmith DDE Item. It returns Ready when RS is not busy.}
- TheData := DdeClientConv2.RequestData('Status'); { The method allocates memory. }
- if TheData <> nil then
- begin
- s := StrPas(TheData);
- Label1.Caption := StrPas(TheData); { This line is only to see what's being returned. }
- end;
- StrDispose(TheData); { On-line help says to dispose of requested data. }
- end;
-
- Report1.Run; { Now, Runtime is ready for its next task. }
- Report1.CloseReport(false);
-
- end;
-